/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Conexao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 *
 * @author francis.almeida
 */
public class HibernateUtil {
    
    
  /*
  * Objeto statico que recebe uma sessao da fabrica da conexao do hibernate
  */
   private static SessionFactory factory;
   private static final AnnotationConfiguration cfg = new AnnotationConfiguration(); 

   /**
    * Metodo para iniciar a conexao com o hibernate e conectar no banco de dados
    */
    public static void iniciar(){
            try {
                
                cfg.setProperty("hibernate.connection.url","jdbc:mysql://192.168.0.19:3306/agendaweb");

                factory = cfg.configure().buildSessionFactory();
                
 
        } catch (Exception ex) {
                System.out.println("Erro iniciando " + ex.getMessage());
        }

    }

   /**
     * Metodo para buscar "Pegar", a sessao iniciada da conexao com o bando
     * @return a session aberta do hibernate com a conexao do bando
     */
   public static Session getSession(){
        if ( factory == null){
            iniciar();
        }
        return factory.openSession();
    }
   
   
   /**
    * Meotodo para finalizar a conexao com o hibernate e o banco de dados
    */
    public static void fecharFabrica(){
        if ( factory != null ){
            factory.close();
        }
    } 
    
    
    
    
}
